package cn.edu.ncu.housinghub.service;

import cn.edu.ncu.housinghub.dto.request.contract.ContractRequest;
import cn.edu.ncu.housinghub.dto.request.contract.ContractVerifyRequest;
import cn.edu.ncu.housinghub.entity.contract.Contract;
import cn.edu.ncu.housinghub.entity.contract.ContractApplication;
import cn.edu.ncu.housinghub.vo.Result;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 合同业务
 */
public interface ContractService {
    /**
     * 租客发起签约申请
     * @param contractRequest 租客发起合同申请的初始信息
     */
    void addInitContract(ContractApplication application);

    /**
     * 房东查看签约申请列表
     * @param landlordId 房东ID
     * @return 签约申请列表
     */
    List<Contract> getContractApplications(Long landlordId);

    /**
     * 通过或拒绝合同申请
     * @param contractVerifyRequest 合同验证请求参数
     */
    void modifyContractStatus(ContractVerifyRequest contractVerifyRequest);

    /**
     * 租客查看自己的签约申请列表
     * @param tenantId 租客ID
     * @return 签约申请列表
     */
    List<Contract> getTenantApplications(Long tenantId);

}
